﻿
Public Class frmMain
    'Работа с INI файлами
    Private Declare Function GetPrivateProfileStringA Lib "kernel32" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    Public Function GetINIString(ByVal AppName As String, ByVal KeyName As String, Optional ByVal DefaultValue As String = "") As String
        Dim rc As String = Strings.StrDup(255, vbNullChar)
        Dim x As Integer
        x = GetPrivateProfileStringA(AppName, KeyName, DefaultValue, rc, 255, Application.StartupPath & "\setting.ini")
        Return IIf(x <> 0, Strings.Left(rc, x), DefaultValue)
        'Call WritePrivateProfileString("Main", "license", license, Application.StartupPath & "\setting.ini")
    End Function

    'Константы сообщений
    Private Const server_is_down As String = "Ошибка получения данных. Возможно отсутствует подключение к интернету. Попробуйте заново, если не поможет, то обратитесь к разработчику."
    Private Const license_not_found As String = "Ваш лицензионный ключ не верный." & vbNewLine & "Получите новый лицензионный ключ."


    Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Получаем лицензионный ключ
        If IO.File.Exists(Application.StartupPath & "\setting.ini") = True Then
            mtxtLicense.Text = GetINIString("Main", "license")
        End If

        'Получаем MAC адрес
        Dim mac_info As System.Net.NetworkInformation.NetworkInterface = Nothing
        Dim mac As String = ""
        Try
            For Each mac_info In System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces
                mac = mac_info.GetPhysicalAddress.ToString
                If mac <> "" Then
                    Exit Try
                End If
            Next
            'Ошибка определения MAC адреса
        Catch ex As Exception
        End Try
        txtMac.Text = mac
    End Sub


    Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        'Отправляем данные на сервер, и получаем ответ
        Dim wbc As New System.Net.WebClient
        Dim response As String
        Dim url As String = "http://advertsgrabber.esy.es/set_mac.php?s1=" & mtxtLicense.Text & "&s2=" & txtMac.Text
        Try : response = wbc.DownloadString(url)
        Catch ex As Exception
            MsgBox("ОШИБКА: " & ex.Message, MsgBoxStyle.Critical) : Exit Sub
        End Try

        'Обрабатываем ответ
        Select Case response
            Case "1", "500" 'ошибка сервера
                MsgBox(server_is_down, MsgBoxStyle.Critical)
            Case "2" 'лицензия не найдена
                MsgBox(license_not_found, MsgBoxStyle.Critical)
            Case "ok" : MsgBox("MAC адрес успешно установлен", MsgBoxStyle.Information)
            Case Else : MsgBox("Произошла не предвиденная ошибка. Ответ сервера:" & vbNewLine & response, MsgBoxStyle.Critical)
        End Select
    End Sub
End Class
